<body>
    <p>Bukkit, the plugin development framework.</p>

    <p>
    The documentation is for developing plugins and is split into the
    respective packages for each subject matter. This documentation does not
    cover running a server, contributing code back to the project, or setting
    up a workspace. Working knowledge of the Java language is a prerequisite
    for developing plugins.
    </p><p>
    For basic plugin development, see the {@link org.bukkit.plugin plugin
    package}. It covers the basic requirements of a plugin jar.
    </p><p>
    For handling events and triggered code, see the {@link org.bukkit.event
    event package}.
    </p><p>
    Note: While the Bukkit API makes every effort to ensure stability, this is
    not guaranteed, especially across major versions. In particular the
    following is a (incomplete) list of things that are <b>not</b> API.
    <ul>
    <li>Implementing interfaces or extending classes. The Bukkit API is designed to only be
    implemented by server software. Unless a class/interface is obviously
    designed for extension (eg {@link org.bukkit.scheduler.BukkitRunnable}), or
    explicitly marked as such, it should not be implemented or extended by plugins. Although
    this can sometimes work, it is not guaranteed to do so and resulting bugs
    will be disregarded.</li>
    <li>Constructing inbuilt events. Although backwards compatibility is
    attempted where possible, it is sometimes not possible to add new fields to
    events without breaking existing constructors. To ensure that the API
    continues to evolve, event constructors are therefore not plugin API.</li>
    <li>Implementation classes. Concrete implementation classes packaged with
    Bukkit (eg those beginning with Simple) are not API. You should access them
    via their interfaces instead.</li>
    <li>The "enumness" of enums which implement {@link org.bukkit.Keyed}.
    Such enums are liable to conversion to regular classes and therefore
    usages deriving from their status as an enum (including, but not limited
    to, use in switch statements and classes such as {@link java.util.EnumSet})
    should be avoided.</li>
    </ul>
</body>
